package com.tencreat.common.enums;

import lombok.Getter;

/**
 * 消息队列枚举配置
 * Created by macro on 2018/9/14.
 */
@Getter
public enum QueueEnum {
    /**
     * 字典刷新队列
     */
    QUEUE_DICT("base-mall.system.reload.exchange", "base-mall.system.reload.name", "base-mall.system.reload.routeKey"),

    /**
     * 用户余额变化队列
     */
    BALANCE_CHANGE("base-mall.user.balance.exchange.v2", "base-mall.user.balance.name.v2", "base-mall.user.balance.routeKey.v2"),

    /**
     * 描述信息 用户消费券变化队列
     * @Author yaoruiqi
     * @Date: 2023/10/08 06:25
     */

    ConsumerRoll_CHANGE("base-mall.user.consumerRollPay.exchange", "base-mall.user.consumerRollPay.name", "base-mall.user.consumerRollPay.routeKey"),

    ACTION_MESSAGE("base-mall.user.action.exchange", "base-mall.user.action.name", "base-mall.user.action.routeKey"),

    /**
     * 用户积分变化队列
     */
    INTEGRAL_CHANGE("base-mall.user.integral.exchange", "base-mall.user.integral.name", "base-mall.user.integral.routeKey"),

    /*****
     * 杉德代付查询
     */
    QUEUE_DELAYED_SAND_BEHALF("base-mall.delayed.sand.exchange", "base-mall.delayed.sand.name", "base-mall.delayed.sand.routeKey"),

    /*****
     * 消息通知延时队列
     */
    QUEUE_DELAYED_ORDER_CANCEL("base-mall.order.delayed.cancel.exchange", "base-mall.order.cancel.delayed.cancel.name", "base-mall.order.cancel.delayed.cancel.routeKey"),

    /*****
     * 售后未处理自动完成队列
     */
    QUEUE_DELAYED_AFTER_SALE_CONFIRM("base-mall.after.sale.confirm.exchange", "base-mall.after.sale.confirm.name", "base-mall.after.sale.confirm.routeKey"),

    /**
     * 退款退货买家7日未填写物流自动取消售后队列
     */
    QUEUE_DELAYED_AFTER_SALE_BACK("base-mall.after.sale.back.exchange", "base-mall.after.sale.back.name", "base-mall.after.sale.back.routeKey");

    /**
     * 交换名称
     */
    private String exchange;
    /**
     * 队列名称
     */
    private String name;
    /**
     * 路由键
     */
    private String routeKey;

    QueueEnum(String exchange, String name, String routeKey) {
        this.exchange = exchange;
        this.name = name;
        this.routeKey = routeKey;
    }
}
